home *** CD-ROM | disk | FTP | other *** search
/ ADA Programming Guide / ADA Programming Guide.iso / ada_pcdp / adas / first.ada < prev    next >
Text File  |  1996-01-30  |  588b  |  33 lines

  1. with Text_IO; use Text_IO;
  2. procedure First is
  3.   pragma Time_Slice(0.01);
  4.  
  5.   Turn: Integer := 1;
  6.   pragma Volatile(Turn);
  7.  
  8.   task T1;
  9.   task body T1 is
  10.   begin
  11.     loop
  12.       Put_Line("Task 1 idling");
  13.       loop exit when Turn = 1; end loop;
  14.       Put_Line("Task 1 critial section");
  15.       Turn := 2;
  16.     end loop;
  17.   end T1;
  18.  
  19.   task T2;
  20.   task body T2 is
  21.   begin
  22.     loop
  23.       Put_Line("Task 2 idling");
  24.       loop exit when Turn = 2; end loop;
  25.       Put_Line("Task 2 critial section");
  26.       Turn := 1;
  27.     end loop;
  28.   end T2;
  29.  
  30. begin
  31.   null;
  32. end First;
  33.